package com.ruoyi.kcnr.service.impl;

import java.util.Date;
import java.util.List;

import com.ruoyi.kcnr.domain.Kcpj;
import com.ruoyi.kcnr.domain.Kcyh;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.kcnr.mapper.KclbMapper;
import com.ruoyi.kcnr.domain.Kclb;
import com.ruoyi.kcnr.service.IKclbService;

/**
 *  课程内容列表Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-08-06
 */
@Service
public class KclbServiceImpl implements IKclbService 
{
    @Autowired
    private KclbMapper kclbMapper;

    /**
     * 查询 课程内容列表
     * 
     * @param id  课程内容列表主键
     * @return  课程内容列表
     */
    @Override
    public Kclb selectKclbById(Long id)
    {
        return kclbMapper.selectKclbById(id);
    }

    /**
     * 查询 课程内容列表列表
     * 
     * @param kclb  课程内容列表
     * @return  课程内容列表
     */
    @Override
    public List<Kclb> selectKclbList(Kclb kclb)
    {
        return kclbMapper.selectKclbList(kclb);
    }

    /**
     * 新增 课程内容列表
     * 
     * @param kclb  课程内容列表
     * @return 结果
     */
    @Override
    public int insertKclb(Kclb kclb)
    {
        kclb.setCreatetime(new Date());
        return kclbMapper.insertKclb(kclb);
    }

    /**
     * 修改 课程内容列表
     * 
     * @param kclb  课程内容列表
     * @return 结果
     */
    @Override
    public int updateKclb(Kclb kclb)
    {
        if (kclb.getPjnr()!=null){
            kclb.setPjs(kclb.getPjs()+1);
            Kcpj kcpj = new Kcpj();
            kcpj.setPjnr(kclb.getPjnr());
            kcpj.setKcid(kclb.getId());
            kclbMapper.insertPjb(kcpj);
            kclbMapper.updateKclb(kclb);
            return 1;
        }else if(kclb.getYyxys()!=null){
            kclb.setYyxys(kclb.getYyxys()+1);
            Kcyh kcyh =kclbMapper.selectByIdYyxys(kclb.getYyxys());
            if (kcyh.getClazzid()==null&&!kcyh.getClazzid().equals("")){
                if (kcyh.getStatus()==1&&kcyh.getMoeny()>=kclb.getHyj()){
                    kclbMapper.updateKcyh(kclb);
                    kclbMapper.updateKclb(kclb);
                    return 2;
                }else if (kcyh.getStatus()==2&&kcyh.getMoeny()>=kclb.getScj()){
                    kclbMapper.updateKcyhScj(kclb);
                    kclbMapper.updateKclb(kclb);
                    return 2;
                }else {
                    return 3;
                }
            }else {
                return 4;
            }
        }
        return kclbMapper.updateKclb(kclb);
    }

    @Override
    public List<Kcyh> kcpjlist(Kcpj kcpj) {
        return kclbMapper.kcpjlist(kcpj);
    }

    /**
     * 批量删除 课程内容列表
     * 
     * @param ids 需要删除的 课程内容列表主键
     * @return 结果
     */
    @Override
    public int deleteKclbByIds(Long[] ids)
    {
        return kclbMapper.deleteKclbByIds(ids);
    }

    /**
     * 删除 课程内容列表信息
     * 
     * @param id  课程内容列表主键
     * @return 结果
     */
    @Override
    public int deleteKclbById(Long id)
    {
        return kclbMapper.deleteKclbById(id);
    }
}
